package com.hck.infrastructure.persistent.dao;

import com.hck.infrastructure.persistent.po.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface IUserDao {
    User selectById(Long id);
    User selectByUsername(String username);
    List<User> selectAll();
    int insert(User user);
    int update(User user);
    int deleteById(Long id);
    
    /**
     * 检查用户名是否存在
     */
    boolean existsByUsername(@Param("username") String username);
    
    /**
     * 检查手机号是否存在
     */
    boolean existsByPhone(@Param("phone") String phone);
    
    /**
     * 检查邮箱是否存在
     */
    boolean existsByEmail(@Param("email") String email);
    
    /**
     * 检查身份证号是否存在
     */
    boolean existsByIdCard(@Param("idCard") String idCard);

    boolean authentic(@Param("userId") Long userId, @Param("password") String password);

}